/*
 *      ID : pallab81
 *      PROG : 4966
 *      LANG : C++
 *
 *      2012-06-14 10:24:44
 *      "I have not failed, I have just found 10000 ways that won't work.
 */

#include <iostream>
#include <algorithm>
#include <vector>
#include <sstream>
#include <fstream>
#include <string>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <functional>
#include <bitset>
#include <iomanip>

#include <ctime>
#include <cassert>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <climits>
#include <cstdlib>

using namespace std;


#define foR(i1,st,ed) for(int i1 = st , j1 = ed ; i1 < j1 ; ++i1 )
#define fo(i1,ed) foR( i1 , 0 , ed )
#define foE(i1,st,ed) foR( i1, st, ed+1 )
#define foit(i, x) for (typeof((x).begin()) i = (x).begin(); i != (x).end(); i++)
#define bip system("pause")
#define Int long long
#define pb push_back
#define SZ(X) (int)(X).size()
#define LN(X) (int)(X).length()
#define mk make_pair
#define SET( ARRAY , VALUE ) memset( ARRAY , VALUE , sizeof(ARRAY) )
#define line putchar_unlocked('\n')

template<class T1>
inline void debug(T1 _x) {
    cout<<_x<<'\n';
}
template<class T1, class T2>
inline void debug(T1 _x,T2 _y) {
    cout<<_x<<' '<<_y<<'\n';
}
template<class T1, class T2, class T3>
inline void debug(T1 _x,T2 _y,T3 _z) {
    cout<<_x<<' '<<_y<<' '<<_z<<'\n';
}
template<class T1, class T2, class T3, class T4>
inline void debug(T1 _x,T2 _y,T3 _z,T4 _zz) {
    cout<<_x<<' '<<_y<<' '<<_z<<' '<<_zz<<'\n';
}
template< class T1>
inline void debug(T1 _array,int _size) {
    cout<<"[";
    for (int i=0; i<_size; ++i) {
        cout<<' '<<_array[i];
    }
    puts(" ]");
}

#define getchar getchar_unlocked
#define putchar putchar_unlocked

inline void fastRead(int *a) {
    register char c=0;
    while (c<33) c=getchar();
    *a=0;
    while (c>33)
    {
        *a=*a*10+c-'0';
        c=getchar();
    }
}
inline string fastRead() {
    register char c[33];
    gets(c);
    return (string)c;
}
inline bool CI(int &_x) {
    return scanf("%d",&_x)==1;
}
inline bool CI(int &_x, int &_y) {
    return CI(_x)&&CI(_y) ;
}
inline bool CI(int &_x, int &_y, int &_z) {
    return CI(_x)&&CI(_y)&&CI(_z) ;
}
inline bool CI(int &_x, int &_y, int &_z, int &_zz) {
    return CI(_x)&&CI(_y)&&CI(_z)&&CI(_zz) ;
}
inline void wait( double seconds ) {
    double endtime = clock()+( seconds* CLOCKS_PER_SEC );
    while ( clock() < endtime ) {
        ;
    }
}
inline bool f(int cur, int mx) {
    return cur%2 == mx%2 ;
}
string str;
int ln;
int kaseno=1;


inline void Solve() {
    str='('+str+')';
    ln=LN(str);

    deque<int> num;
    vector<int> vi;
    num.pb(0);
    vi.pb(num.back());

    foR(i,1,ln) {
        if ( str[i]=='(' ) {
            num.pb( num.back()+1 );
            vi.pb( num.back() );
        }
        else if ( str[i]==')') {
            vi.pb(num.back());
            num.pop_back();
        }
        else {
            vi.pb(num.back());
        }
    }

//     fo(i,ln) {
//         cout<<str[i]<<' '<<vi[i]<<'\n';
//     }

    int mx= *max_element(vi.begin(),vi.end());

    deque<char> dq;
    bool ret= f(vi[0],mx) ? true : false ;

    fo(i,ln) {
        if ( str[i]=='(' ) {
            dq.pb('(');
        }
        else if (str[i]=='T' || str[i]=='F') {
            dq.pb(str[i]);
        }
        else {
            bool tmp = f( vi[i],mx) ? true : false;
            bool todo = f(vi[i],mx) ? 1 : 0; // 1 = and 0 = or
            while ( dq.back()!='(' ) {
                char var= dq.back();
                if (todo==1) {
                    tmp&= (var =='T' ? true : false );
                }
                else {
                    tmp|= (var =='T' ? true : false );
                }
                dq.pop_back();
            }
            dq.pop_back();
            dq.pb( tmp==true ? 'T' : 'F' );
        }
    }
    bool toDo = f(vi[0],mx) ? 1 : 0;

    fo(i,SZ(dq)) {
        if (toDo==1) {
            ret&= dq[i] =='T' ? true : false ;
        }
        else {
            ret|= dq[i] =='T' ? true : false ;
        }
    }
    cout<<kaseno<<". "<< (ret ? "true\n" : "false\n") ;
}
int main() {

    while ( cin>>str ) {
        if (str=="()")break;
        Solve();
        ++kaseno;
    }


    return 0;
}
// kate: indent-mode cstyle; space-indent on; indent-width 0; 
